using GLib;

public class Decorator : Object {

	static int main(string[] args) {
	
		var person = new Person.withName("Matrix");
		
		var tshirt = new TShirt();
		
		var trouser = new Trouser();
		
		var shoes = new Shoes();
		
		shoes.Decorate(person);
		
		shoes.Show();
		
		trouser.Decorate(shoes);
		
		trouser.Show();
		
		tshirt.Decorate(trouser);
		
		tshirt.Show();
	
		return 0;
	}
}
